package com.whu.waterworks.service;

import java.util.ArrayList;
import java.util.List;

import com.whu.waterworks.dao.AlertRecordDAO;
import com.whu.waterworks.model.AlertRecord;
import com.whu.waterworks.model.AlertRecordId;

/**
 * 
 * @author cai
 * @date 2016-3-30
 */
public class AlertRecordService {
	private AlertRecordDAO alertRecordDAO;

	// 所有预警记录
	public List<AlertRecord> getAll() {
		return alertRecordDAO.findAll();
	}

	public List<AlertRecord> getAllInTime(String startTime, String endTime) {
		List<AlertRecord> alertRecords = getAll();
		List<AlertRecord> records = new ArrayList<>();

		for (AlertRecord alertRecord : alertRecords) {
			if (alertRecord.getFlag()==null) {
				alertRecord.setFlag("0");
			}
			if (alertRecord.getTime()==null) {
				alertRecord.setTime("0");
			}
			// 遍历查找未处理的预警信息
			if (alertRecord.getTime().compareTo(startTime) >= 0
					&& alertRecord.getTime().compareTo(endTime) <= 0) {
				records.add(alertRecord);
			}
		}
		return records;
	}

	// 未处理的预警信息
	public List<AlertRecord> getUndisposeRecords(String startTime,
			String endTime) {
		List<AlertRecord> alertRecords = getAll();
		List<AlertRecord> undisposeRecords = new ArrayList<>();

		for (AlertRecord alertRecord : alertRecords) {
			if (alertRecord.getFlag()==null) {
				alertRecord.setFlag("0");
			}
			if (alertRecord.getTime()==null) {
				alertRecord.setTime("0");
			}
			// 遍历查找未处理的预警信息
			if (alertRecord.getFlag().equals("1") == false
					&& alertRecord.getTime().compareTo(startTime) >= 0
					&& alertRecord.getTime().compareTo(endTime) <= 0) {
				undisposeRecords.add(alertRecord);
			}
		}
		return undisposeRecords;
	}

	// 已处理的预警信息
	public List<AlertRecord> getdisposedRecords(String startTime, String endTime) {
		List<AlertRecord> alertRecords = getAll();
		List<AlertRecord> disposedRecords = new ArrayList<>();

		for (AlertRecord alertRecord : alertRecords) {
			if (alertRecord.getFlag()==null) {
				alertRecord.setFlag("0");
			}
			if (alertRecord.getTime()==null) {
				alertRecord.setTime("0");
			}
			// 遍历查找未处理的预警信息
			if (alertRecord.getFlag().equals("1") == true
					&& alertRecord.getTime().compareTo(startTime) >= 0
					&& alertRecord.getTime().compareTo(endTime) <= 0) {
				disposedRecords.add(alertRecord);
			}
		}
		return disposedRecords;
	}

	public String updateRecord(AlertRecord alertRecord) {
		return alertRecordDAO.update(alertRecord);
	}
	public AlertRecord findById(AlertRecordId id) {
		return alertRecordDAO.findById(id);
	}
	public AlertRecordDAO getAlertRecordDAO() {
		return alertRecordDAO;
	}

	public void setAlertRecordDAO(AlertRecordDAO alertRecordDAO) {
		this.alertRecordDAO = alertRecordDAO;
	}
}
